import Vue from 'vue'
import VueRouter from 'vue-router'
import routes from '@/router/route'
import appConfig from '@/config/index'
import store from '../store'

Vue.use(VueRouter)
// 判断是否需要登录访问, 配置位于 config 文件夹
let isLoginRequired = routeName => {
  // 首次执行时缓存配置
  let {notLoginRoute} = appConfig //不需要登录的页面
  const notLoginMark = {}
  // 构建标记对象
  if (Array.isArray(notLoginRoute)){
    for (let i =0 ;i<notLoginRoute.length; i+=1){
      notLoginMark[notLoginRoute[i].toString()] = true
    }
  }
  notLoginRoute = null // 释放内存
  // 重写初始化函数
  isLoginRequired = name =>{
    if (!name){
      return true
    }
    // 处理 Symbol 类型
    const target = typeof name === 'symbol' ? name.description : name
    return !notLoginMark[target]
  }
  return isLoginRequired(routeName)
}

const router = new VueRouter({
  base: process.env.BASE_URL,
  routes: routes
})

router.beforeEach((((to, from, next) => {
  //判断是 需要登录验证的路由 且 未登录
  // if (isLoginRequired(to.name) && !store.state.logined){
  //   next({ path: '/login' })
  //   return
  // }
  // 路由发生变化修改页面title
  // if (to.meta.title){
  //   document.title = to.meta.title
  // }
  next()
})))

export default router
